home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TeX 1995 July
/
TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO
/
systems
/
mac
/
oztex-german
/
OzTeX-1.4d.sit.bin
/
OzTeX 1.4
/
PS-files
/
errhandler.ps
< prev
next >
Wrap
Text File
|
1989-06-04
|
3KB
|
85 lines
%!
% From: adobe!shore@su-glacier.arpa (Andrew Shore)
% Date: 29 Apr 1986 2120-PDT (Tuesday)
% Subject: revised PostScript downloadable error handler
%
% Here is our latest version of the downloadable PostScript error
% handler (ehandler.ps). When sent to any PostScript printer, it
% will download itself outside the printer's "server loop"
% (assuming the server loop password is correct) and redefine the
% action taken on a PostScript error.
%
% This handler prints a sometimes-helpful summary of the error on
% the thus-far-completed page and then executes the previous
% handleerror code as well (which in most PostScript printers will
% echo the error name and offending command over the
% communications channel). This version works on all existing
% Adobe PostScript implementations.
%
% It really helps when debugging raw PostScript code and new
% PostScript-generating applications.
%
% ehandler.ps -- Downloaded Error Break-page handler
% Copyright (c) 1984, 1985, 1986 Adobe Systems Incorporated.
% All Rights Reserved.
serverdict begin 0 exitserver
(Error Handler downloaded.\n) print flush
/$brkpage 64 dict def
$brkpage begin
/prnt
{dup type/stringtype ne{=string cvs}if dup length 6 mul/tx exch def/ty 10 def
currentpoint/toy exch def/tox exch def 1 setgray newpath
tox toy 2 sub moveto 0 ty rlineto tx 0 rlineto 0 ty neg rlineto
closepath fill tox toy moveto 0 setgray show}bind def
/nl{currentpoint exch pop lmargin exch moveto 0 -10 rmoveto}def
/=={/cp 0 def typeprint nl}def
/typeprint{dup type dup currentdict exch known
{exec}{unknowntype}ifelse}readonly def
/lmargin 72 def/rmargin 72 def
/tprint{dup length cp add rmargin gt{nl/cp 0 def}if
dup length cp add/cp exch def prnt}readonly def
/cvsprint{=string cvs tprint( )tprint}readonly def
/unknowntype{exch pop cvlit(??)tprint cvsprint}readonly def
/integertype{cvsprint}readonly def
/realtype{cvsprint}readonly def
/booleantype{cvsprint}readonly def
/operatortype{(//)tprint cvsprint}readonly def
/marktype{pop(-mark- )tprint}readonly def
/dicttype{pop(-dictionary- )tprint}readonly def
/nulltype{pop(-null- )tprint}readonly def
/filetype{pop(-filestream- )tprint}readonly def
/savetype{pop(-savelevel- )tprint}readonly def
/fonttype{pop(-fontid- )tprint}readonly def
/nametype{dup xcheck not{(/)tprint}if cvsprint}readonly def
/stringtype
{dup rcheck{(\()tprint tprint(\))tprint}{pop(-string- )tprint}ifelse
}readonly def
/arraytype
{dup rcheck{dup xcheck
{({)tprint{typeprint}forall(})tprint}
{([)tprint{typeprint}forall(])tprint}ifelse}{pop(-array- )tprint}ifelse
}readonly def
/packedarraytype
{dup rcheck{dup xcheck
{({)tprint{typeprint}forall(})tprint}
{([)tprint{typeprint}forall(])tprint}ifelse}{pop(-packedarray- )tprint}ifelse
}readonly def
/courier/Courier findfont 10 scalefont def
/OLDhandleerror errordict /handleerror get def
end %$brkpage
errordict/handleerror
{systemdict begin $error begin $brkpage begin newerror
{/newerror false store
vmstatus pop pop 0 ne{grestoreall}if initgraphics courier setfont
lmargin 720 moveto(ERROR: )prnt errorname prnt
nl(OFFENDING COMMAND: )prnt/command load prnt
$error/ostack
known{nl nl(STACK:)prnt nl nl $error/ostack get aload length{==}repeat}if
systemdict/showpage get exec
/newerror true store/OLDhandleerror load end end end exec}{end end end}
ifelse}
dup 0 systemdict put dup 4 $brkpage put bind readonly put